home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tpl60n19.zip / TESTPRGS.ZIP / STRTEST.PAS < prev    next >
Pascal/Delphi Source File  |  1993-02-14  |  3KB  |  74 lines

  1. PROGRAM StrTest; { Copyright (c) 1991-1993 Norbert Juffa }
  2.  
  3. {$A+,B-,D+,E+,F-,G-,I-,L+,N-,O-,R-,S-,V-,X-}
  4. {$M 16384,0,655360}
  5.  
  6. USES Time;
  7.  
  8. VAR
  9.   I: INTEGER;
  10.   U: STRING [1];
  11.   Q: STRING [100];
  12.   S: STRING [55];
  13.   T: STRING [60];
  14.   V: STRING;
  15.   Start: LONGINT;
  16.   L: WORD;
  17.  
  18. CONST TestStr: ARRAY [1..22] OF CHAR = 'HELLO, THIS IS A TEST ';
  19.  
  20. BEGIN
  21.    WriteLn ('String Function Compatibility and Speed Test');
  22.    WriteLn;
  23.    Start := Clock;
  24.    FOR L := 1 TO 1000 DO BEGIN
  25.       T := 'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890';
  26.       Insert (T, T, 1);
  27.       Delete (T, 55, 54);
  28.       S := Copy (T, -5, 2);     {'TH'}
  29.       U := Copy (T, 7, 4);      {'I'}
  30.       S := S + U;               {'THI'}
  31.       Q := Copy (T, 32, 70);    {'THE LAZY DOG 1234567890'}
  32.       Delete (Q, 2, 1);         {'TE LAZY DOG 1234567890'}
  33.       Delete (Q, 100, 2);       {'TE LAZY DOG 1234567890'}
  34.       Delete (Q, 3, -4);        {'TE LAZY DOG 1234567890'}
  35.       Delete (Q, 3, 10);        {'TE1234567890'}
  36.       I := Pos ('S', T);        {25}
  37.       Insert(Copy(T,I,200),Q,3);{'TES OVER THE LAZY DOG 12345678901234567890'}
  38.       Delete (Q, 4, 6);         {'TESTHE LAZY DOG 12345678901234567890}
  39.       S := S + T [25];          {'THIS'}
  40.       S := S + Copy (S, 3, -5) + Copy (S, 3, 2);  {'THISIS'}
  41.       V := T;                   {'THE QUICK BROWN FOX JUMPS OVER THE LAZY ..'}
  42.       Delete (V, -10, 47);      {'AZY DOG 1234567890'}
  43.       IF (Copy (V, -7, -1) = '') AND (Pos ('DOG', V) = 5) THEN {TRUE}
  44.          Insert (V, S, 200);    {'THISISAZY DOG 1234567890'}
  45.       U := Copy (T, 44, 40);    {' '}
  46.       Insert (U, S, 5);         {'THIS ISAZY DOG 1234567890'}
  47.       I := Pos ('ZY', S);       {9}
  48.       Delete (S, I, -5);        {'THIS ISAZY DOG 1234567890'}
  49.       Insert (Copy(S,5,1),S,8); {'THIS IS AZY DOG 1234567890'}
  50.       Delete (S, 10, 16);       {'THIS IS A0'}
  51.       IF S [Length (S)] = '0' THEN {TRUE}
  52.          S := S + Q;            {'THIS IS A0TESTHE LAZY DOG 123456789012345...'}
  53.       V := Copy (S, Length (S) - 19, 10); {'1234567890'}
  54.       IF V = Copy (S, Length (S) - 9, 10) THEN {TRUE}
  55.          Delete (S, 15, 3 * Length (V)+2); {'THIS IS A0TEST'}
  56.       Insert ('', S, 0);        {'THIS IS A0TEST'}
  57.       Insert(Copy(S,5,1),S,11); {'THIS IS A0 TEST'}
  58.       Insert ('HELLO', S, -4);  {'HELLOTHIS IS A0 TEST'}
  59.       Insert (',', S, 6);       {'HELLO,THIS IS A0 TEST'}
  60.       Delete (S, Pos ('TEST', S) - 2, 1); {'HELLO,THIS IS A TEST'}
  61.       Delete (Q, 0, 32767);     {''}
  62.       Q := Q + ' ';             {' '}
  63.       Insert (Q, S, 7);         {'HELLO, THIS IS A TEST'}
  64.       Insert (Q, S, 255);       {'HELLO, THIS IS A TEST '}
  65.       IF (S = TestStr) AND (Q = ' ') AND
  66.          (V = '1234567890') AND (T = 'THE QUICK BROWN FOX JUMPS OVER THE'+
  67.          ' LAZY DOG 1234567890') AND (L=1) THEN BEGIN
  68.          WriteLn ('Test OK');
  69.          WriteLn;
  70.          END;
  71.    END;
  72.    WriteLn ('String-Benchmark completes in', Clock-Start:5, ' ms');
  73. END.
  74.